﻿<Page
    x:Name="pageRoot"
    x:Class="SloppyJoeChapter10.MainPage"
    DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:SloppyJoeChapter10"
    xmlns:common="using:SloppyJoeChapter10.Common"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Page.Resources>
        <!-- TODO: Delete this line if the key AppName is declared in App.xaml -->
        <x:String x:Key="AppName">Welcome to Sloppy Joe's</x:String>
        <local:MenuMaker x:Name="menuMaker"/>
    </Page.Resources>

    <!--
        This grid acts as a root panel for the page that defines two rows:
        * Row 0 contains the back button and page title
        * Row 1 contains the rest of the page layout
    -->
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid.ChildrenTransitions>
            <TransitionCollection>
                <EntranceThemeTransition/>
            </TransitionCollection>
        </Grid.ChildrenTransitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="140"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!-- Back button and page title -->
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="120"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Button x:Name="backButton" Margin="39,59,39,0" Command="{Binding NavigationHelper.GoBackCommand, ElementName=pageRoot}"
                        Style="{StaticResource NavigationBackButtonNormalStyle}"
                        VerticalAlignment="Top"
                        AutomationProperties.Name="Back"
                        AutomationProperties.AutomationId="BackButton"
                        AutomationProperties.ItemType="Navigation Button"/>
            <TextBlock x:Name="pageTitle" Text="{StaticResource AppName}" Style="{StaticResource HeaderTextBlockStyle}" Grid.Column="1" 
                        IsHitTestVisible="false" TextWrapping="NoWrap" VerticalAlignment="Bottom" Margin="0,0,30,40"/>
        </Grid>

        <StackPanel Grid.Row="1" Margin="120,0" x:Name="pageLayoutStackPanel"
                    DataContext="{StaticResource ResourceKey=menuMaker}">
            <StackPanel Orientation="Horizontal" Margin="0,0,0,20">
                <StackPanel Margin="0,0,20,0">
                    <TextBlock Style="{StaticResource BodyTextBlockStyle}" 
                Text="Number of items" Margin="0,0,0,10" />
                    <TextBox Width="100" HorizontalAlignment="Left" 
                        Text="{Binding NumberOfItems, Mode=TwoWay}" />
                </StackPanel>
                <Button x:Name="newMenu" VerticalAlignment="Bottom" Click="newMenu_Click" 
        Content="Make a new menu" Margin="0,0,20,0"/>
            </StackPanel>
            <ListView ItemsSource="{Binding Menu}" Margin="0,0,20,0">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <TextBlock>
                            <Run Text="{Binding Meat}" Foreground="Blue"/><Run Text=" on "/>
                            <Run Text="{Binding Bread}" FontWeight="Light"/><Run Text=" with "/>
                            <Run Text="{Binding Condiment}" Foreground="Red" FontWeight="ExtraBold"/>
                        </TextBlock>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <TextBlock Style="{StaticResource CaptionTextBlockStyle}">
        <Run Text="This menu was generated on " />
        <Run Text="{Binding GeneratedDate}"/>
            </TextBlock>
        </StackPanel>
    </Grid>
</Page>
